<div id="preguntas" class="col-sm-offset-2">
</div>

<div id="variosJugadores">
	<div id="espera">
		<h3>Esperar vuestro turno por favor</h3>
	</div>
	<div id="botones" class="col-sm-offset-2">
		<input type="button" value="OK" id="ok" class="btn btn-primary">
		<h3 id="puntos" class="text-center"></h3>
	</div>
</div>
<script>
	/*Boton ok escondido*/
	$('#ok').hide(); 
	$('#puntos').hide();
	$('#espera').hide();
	
	var turno;
 	var pregunta;
	var contadorPreguntas = 0;
	var puntuacion = 0;
	var puntuacionTotal =0;
	var enunciadoPregunta;
	var enunciadoRespuesta;
	var idRespuesta;
	
	miTurno(idPartida, idUsuario);
	
	function miTurno(idPartida, idUsuario) {
		
		$('#espera').hide();
		$('#preguntas').hide();
		/*Verifico que es mi turno*/
		var urlTurno = "../dispatcher/juego/miTurno";
		urlTurno += "?partidaId=" + idPartida + "&usuarioId=" + idUsuario;
		$.getJSON(urlTurno, function(data){
	 		turno = data;
			if (turno == true) {
	 			estadoPartida(idPartida);
	 		} else {
	 			espera();
	 		}
		});
	}
	
	function espera () {
		$('#espera').show();
		setTimeout("miTurno(idPartida, idUsuario)", 15000);
	}
	  	 
	function estadoPartida(idPartida){
		var urlEstadoPartida = "../dispatcher/juego/estadoPartida";
		urlEstadoPartida += "?partidaId=" + idPartida;
		
		$.getJSON(urlEstadoPartida, function(data){
			if (data == false) {
				 puntosPartida(idPartida, idUsuario);
			} else {
				cargarPuntos();
			} 
			 
		}); 
		
	}
 	
	function cargarPuntos() {
		// Para que los otros ven que la partida se ha acabada
		jugadorSiguiente(idPartida, idUsuario);

		$('#puntos').hide();
		$('#preguntas' ).show();
		$('#preguntas' ).load('juego/puntuacionTotal.html');
	}
	
	function partidaTerminada(idPartida){
 		var data = '{"id" : "'+ idPartida +'"}';
 		$.ajax({
	           type: "POST",
	            url: "../dispatcher/juego/partidaTerminada",
	            data: data,
	            beforeSend: function(xhr) {  
	                xhr.setRequestHeader("Accept", "application/json");  
	                xhr.setRequestHeader("Content-Type", "application/json");  
	            },  
	            success: function (datos) {
	            	
	            },
	            error : function (data, status, er) {
	            	alert("error" + data + " status " +status+" er:"+er );
	            }
	           
	    });
		
	}  

	function  puntosPartida (idPartida, idUsuario){
		/*Recupero los puntos de la partida*/
		var urlPuntosPartida = "../dispatcher/juego/recuperarPuntuacion";
		urlPuntosPartida += "?partidaId=" + idPartida + "&usuarioId=" + idUsuario;
		$.getJSON(urlPuntosPartida, function(data){
			puntuacionTotal = data;
			
			$('#puntos').text("Tus puntos : " + puntuacionTotal);
			
			if (asignatura !== undefined && dificultad !== undefined) {
				recuperarPregunta(idPartida, asignatura, dificultad);	
			} else {
				recuperarInformacionPartida(idPartida);
			}
		});
	}
	
	function recuperarInformacionPartida(idPartida) {
		var urlInformacionPartida = "../dispatcher/plataforma/informacionPartida";
		urlInformacionPartida += "?partidaId=" + idPartida;
		$.getJSON(urlInformacionPartida, function(data){
			asignatura = data.idTema;
			dificultad = data.idDificultad;
			recuperarPregunta(idPartida, asignatura, dificultad);
		});
	}
	
	/*Recupero una pregunta*/
	function recuperarPregunta(idPartida, asignatura, dificultad){
		var urlRecuperarPregunta = "../dispatcher/juego/recuperarUnaPregunta";
		urlRecuperarPregunta += "?partidaId=" + idPartida + "&asignaturaId=" + asignatura + "&dificultadId=" + dificultad;
		$.getJSON(urlRecuperarPregunta, function(data){
			if (data.id != null) {
				pregunta = data;
				$('#preguntas').show();
		    	$('#preguntas' ).load('juego/unJugador.html',function(){
		    		contadorPreguntas+=1;
		   			recuperarContenido(pregunta.id,1,3);
		   			
					
		    	});
			} else {
				partidaTerminada(idPartida);
		 		
		 		$("#ok").hide();
		 		cargarPuntos();	
			}
		});
	}
	
	function recuperarContenido(idPregunta, numRespuestaOK, numRespuestaKO){
		  
		//Recuperar el enunciado de la pregunta  
		var urlPreguntas = "../dispatcher/juego/recuperarContenidoPreguntas";
		urlPreguntas += "?preguntaId="+ idPregunta;
		$.getJSON(urlPreguntas, function(data){
			puntuacion = data.puntuacion;
			/* console.info("recuperar enunciado y puntos de la pregunta " + puntuacion); */
			enunciadoPregunta = data.enunciado;
			$('#pregunta').text(enunciadoPregunta); 
		  		  		
		});
		  	
		/*Recuperar el enunciado de las respuestas correctas*/
		var contadorRespuestas = 1;
		var urlRespuestas="../dispatcher/juego/recuperarContenidoRespuestas"
		urlRespuestas+="?numRespuestasOK="+ numRespuestaOK + "&numRespuestasKO="+ numRespuestaKO + "&preguntaId="+ idPregunta; 
		$.getJSON(urlRespuestas, function(data){
			$.each(data, function(i, item){
				enunciadoRespuesta = item.enunciado;
				idRespuesta = item.id;
				$('#label'+contadorRespuestas+'').text(enunciadoRespuesta);
				$('#respuesta'+contadorRespuestas+'').val(idRespuesta);
				contadorRespuestas += 1;  			
			});
		  	
		});
		
		$("#ok").show();
		$("#ok").click(function(){
			 
			 	validarRespuesta(idRespuesta);

		}); 
	}; 
	
	/*Funcion para validar la respuesta*/
	function validarRespuesta( idRespuesta ){
		var urlValidar = "../dispatcher/juego/validarRespuesta"; 
		var valorRadio = $( "input:radio[name=respuesta]:checked" ).val();
		urlValidar += "?respuestaId=" + valorRadio;
		
		$.getJSON(urlValidar, function( data ) {
		
			$("#ok").unbind("click");
			
			if (data.respuestaCorrecta == true) {
				puntuacionTotal += 10;
			 	
			 	$('#puntos').text("Tus puntos : " + puntuacionTotal);
			 	
			 	insertarPuntos(idPartida, idUsuario, puntuacionTotal);
			 	
			 	if (puntuacionTotal < 20) {
			    	recuperarPregunta(idPartida, asignatura, dificultad);
			 	} else {
	/* 		 		insertarPuntos(idPartida, idUsuario, puntuacionTotal);
	 */		 		partidaTerminada(idPartida);
			 		
			 		$("#ok").hide();
				 	/* $('#instrucciones' ).load('juego/puntuacionTotal.html'); */
			 		cargarPuntos();
			 		
			 	};
			} else {
				insertarPuntos(idPartida, idUsuario, puntuacionTotal);
				jugadorSiguiente(idPartida, idUsuario);
				
				$('#preguntas').hide();
				$("#ok").hide();
				espera();
				
			
				$('#puntos').show();
				$('#puntos').text("Tus puntos : " + puntuacionTotal);
			}	
		});	
	};
	
	/*Funcion para insertar los puntos del jugador*/
	function insertarPuntos(idPartida, idUsuario, puntuacionTotal) {
		var data = '{"partidaId" : "'+ idPartida +' " , "usuarioId" : "' + idUsuario +' " , "puntuacionTotal" : "' + puntuacionTotal +'"}';
		
		$.ajax({
	           type: "POST",
	            url: "../dispatcher/juego/puntuacion",
	            data: data,
	            beforeSend: function(xhr) {  
	                xhr.setRequestHeader("Accept", "application/json");  
	                xhr.setRequestHeader("Content-Type", "application/json");  
	            },  
	            success: function (datos) {
					
	            },
	            error : function (data, status, er) {
	            	alert("error" + data + " status " +status+" er:"+er );
	            }
	    });
		
	};
	
	/*Jugador siguiente*/
	function jugadorSiguiente(idPartida, idUsuario){
		var data = '{"partidaId" : "'+ idPartida +' " , "usuarioId" : ' + idUsuario +'}';
		
		$.ajax({
	           type: "POST",
	            url: "../dispatcher/juego/asignarTurno",
	            data: data,
	            beforeSend: function(xhr) {  
	                xhr.setRequestHeader("Accept", "application/json");  
	                xhr.setRequestHeader("Content-Type", "application/json");  
	            },  
	            success: function (datos) {
					
	            },
	            error : function (data, status, er) {
	            	alert("error" + data + " status " +status+" er:"+er );
	            }
	    });
	};
	
	//function temporizador(){
		/* location.reload(); */
		//setTimeout("miTurno(idPartida, idUsuario)", 70000);
		/* miTurno(idPartida, idUsuario) */
		

	//}
</script>